﻿/**********************************************************************
 * @file   GUIGeometryVerticalLineDialog.h
 * @brief  垂线界面类
 * @author guqingtao (15598887859@163.com)
 * @date   2025-02-24
 *********************************************************************/
#ifndef __GUIGEOMETRYVERTICALLINEDIALOG_H__
#define __GUIGEOMETRYVERTICALLINEDIALOG_H__
#include "FITK_Interface/FITKInterfaceGeometry/FITKAbsGeoCommand.h"

#include "GUIGeometryBaseDialog.h"

namespace Ui { class GUIGeometryVerticalLineDialog; }
namespace Interface
{
    class FITKAbsGeoModelSegment;
    class VirtualShape;
}
namespace GUI {

    class GUIGeometryDialogAPI GUIGeometryVerticalLineDialog : public GUIGeometryBaseDialog
    {
        Q_OBJECT

    public:

        GUIGeometryVerticalLineDialog(Core::FITKActionOperator* oper, QWidget* parent = nullptr);
 
        ~GUIGeometryVerticalLineDialog();

        void init() override;

    private:

        QString getNameText() override;

        virtual void pickFinishedOper() override;

        virtual void getDataFormWidget()override;

        std::array<double, 3>getPointXYZ(int id);

    private slots:

        void on_pushButtonPoint1_Pick_clicked();

        void on_pushButtonPoint1_Pick_2_clicked();

        void on_pushButton_OK_clicked();

        void on_pushButton_Cancel_clicked();
        
    private:
        Ui::GUIGeometryVerticalLineDialog *_ui;
        int _flag = 0;
        Interface::VirtualShape _virtualShapes1;
    };
}
#endif // GUIGEOMETRYVERTICALLINEDIALOG_H

